define("fileUploader/components/fileUploader",["santaProps","lodash","reactDOM","core","textCommon","siteUtils"],function(a,b,c,d,e,f){"use strict";var g=d.compMixins;var h=a.Types;var i=f.fileUploadManager;function j(a){var c=b.get(a,["selectedFiles"]);var d=b.get(a,["valid"]);return{value:c,valid:d}}return{displayName:"FileUploader",mixins:[g.skinBasedComp,e.textScaleMixin,g.compStateMixin(j),d.compMixins.inputFocusMixin],statics:{useSantaTypes:true,behaviors:{behaviors:b.assign({change:{methodName:"validate"}},d.compMixins.inputFocusMixin.INPUT_FOCUS_BEHAVIORS)}},propTypes:b.assign({compData:a.Types.Component.compData.isRequired,compProp:a.Types.Component.compProp.isRequired,siteMediaToken:h.RendererModel.siteMediaToken.isRequired,windowKeyboardEvent:a.Types.SiteAspects.windowKeyboardEvent.isRequired,getMediaFullStaticUrl:a.Types.ServiceTopology.getMediaFullStaticUrl,shouldResetComponent:a.Types.RenderFlags.shouldResetComponent.isRequired}),getInitialState:function(){return{selectedFiles:[],valid:true,promiseCallback:undefined}},componentWillMount:function(){this.props.windowKeyboardEvent.registerToKeyDown(this)},componentWillUnmount:function(){this.props.windowKeyboardEvent.unRegisterKeyDown(this)},componentWillReceiveProps:function(a){if(a.shouldResetComponent){this.setState({valid:true})}},onKeyDown:function(a){var c=[13,32];if(!this.props.compProp.isDisabled&&b.includes(c,a.keyCode)){var d=b.includes(a.target.className,"chooseFileButton");var e=b.includes(a.target.classList[0],"uploadName");if(d){this.refs.fileInput.click()}else if(e){this.removeFile()}}},focus:function(){this.refs.chooseFileButton.focus();this.handleAction(f.constants.ACTION_TYPES.FOCUS)},blur:function(){this.refs.chooseFileButton.blur();this.handleAction(f.constants.ACTION_TYPES.BLUR)},createFileNodes:function(a){var c=this.props.compProp.showPlaceholder;var d=this.props.compProp.filesAlignment;var e=this.props.compData.placeholderLabel;var f=b.cloneDeep(this.state.selectedFiles);var g={isPlaceholder:b.isEmpty(f)?c:false,alignment:d,previewState:a,errorState:!this.state.valid,removeFunction:this.removeFile,scale:b.get(this.props,"structure.layout.scale")};if(b.isEmpty(f)){if(!b.isUndefined(a)){f.push({name:"Example.txt"});g.isPlaceholder=false}else{e=e===""?" ":e;f.push({name:e});if(!c||e===" "){g.hidePlaceholder=true}}}return b.map(f,function(a,b){return this.createChildComponent({id:"uploadName"+b,fileName:a.name},"wysiwyg.viewer.components.inputs.uploadName","uploadName",g)}.bind(this))},removeFile:function(){var a=!!this.state.promiseCallback;if(!a){this.setState({selectedFiles:[]},function(){var a=c.findDOMNode(this.refs.fileInput);a.value="";this.handleAction(f.constants.ACTION_TYPES.CHANGE);this.validate()})}},uploadCompleteCB:function(a){var c=a[0];if(this.props.compProp.filesType==="Image"){var d="image://";var e="v1";var f=b.template(d+e+"/${uri}/${width}_${height}/${title}");c.uri=c.file_name;c.title=c.file_name;var g=f(c);c={url:g}}if(this.state.promiseCallback){this.state.promiseCallback(c)}this.setState({promiseCallback:undefined})},uploadFailedCB:function(a){var b={errorCode:a.error_code,errorDescription:a.error_description};if(this.state.promiseCallback){this.state.promiseCallback({},b)}this.setState({promiseCallback:undefined,valid:false})},uploadFiles:function(a){this.setState({promiseCallback:a},function(){b.forEach(this.refs.fileInput.files,function(a){i.uploadFile(a,this.props.siteMediaToken,this.props.compProp.filesType,this.uploadCompleteCB,this.uploadFailedCB)}.bind(this))}.bind(this))},validate:function(){var a=this.props.compProp.required?!b.isEmpty(this.state.selectedFiles):true;this.setState({valid:a},function(){this.handleAction(f.constants.ACTION_TYPES.VALIDATE)})},onFileSelectionChange:function(){if(!b.isEmpty(this.refs.fileInput.files)){var a=b.map(this.refs.fileInput.files,function(a){return{name:a.name,size:a.size}});this.setState({selectedFiles:a},function(){this.handleAction(f.constants.ACTION_TYPES.CHANGE);this.validate()})}},getAcceptableFileTypes:function(){switch(this.props.compProp.filesType){case"Image":return".jpeg,.png,.jpg";case"Document":return".pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx,.odp,.odt,.epub"}},getSkinProperties:function(){var a=this.props.compData;var b=this.props.compProp;var c={};c[b.buttonAlignment]=true;c["no-label"]=a.buttonLabel==="";var d=this.getComponentPreviewState()||this.props.previewState;var e=!!this.props.compProp.isDisabled;var f=!this.state.valid;return{"":{},chooseFileButton:{className:this.classSet(c),onClick:function(){if(!e){this.refs.fileInput.click()}}.bind(this),"data-preview":d,"data-disabled":e,"data-error":f},buttonLabel:{children:[a.buttonLabel],style:this.getFontSize("btn_fnt")},fileInput:{onChange:this.onFileSelectionChange,accept:this.getAcceptableFileTypes()},files:{children:this.createFileNodes(d),"data-preview":d}}}}});define("fileUploader/components/uploadName",["santaProps","react","lodash","core","textCommon"],function(a,b,c,d,e){"use strict";var f=d.compMixins;return{displayName:"UploadName",mixins:[f.skinBasedComp,e.textScaleMixin],statics:{useSantaTypes:true},propTypes:c.assign({compData:a.Types.Component.compData.isRequired,compProp:a.Types.Component.compProp.isRequired,alignment:b.PropTypes.string.isRequired,removeFunction:b.PropTypes.func.isRequired,isPlaceholder:b.PropTypes.bool.isRequired,scale:b.PropTypes.number.isRequired,previewState:b.PropTypes.string,errorState:b.PropTypes.bool}),getSkinProperties:function(){var a=this.props.compData;var b={};b["align-"+this.props.alignment]=true;b["hide-placeholder"]=this.props.hidePlaceholder;var c=!!this.props.compProp.isDisabled;var d=this.getComponentPreviewState()||this.props.previewState;var e=this.props.errorState;return{"":{className:this.classSet(b),"data-preview":d},"x-icon":{style:this.props.isPlaceholder?{display:"none"}:{},onClick:function(){if(this.props.removeFunction){this.props.removeFunction(a.fileName)}}.bind(this),"data-preview":d,"data-disabled":c,"data-error":e},"file-name":{className:this.classSet({"file-name-placeholder":this.props.isPlaceholder}),children:[a.fileName],"data-preview":d,"data-disabled":c,"data-error":e,style:this.getFontSize("file_fnt",this.props.scale)}}}}});define("fileUploader",["fileUploader/components/fileUploader","fileUploader/components/uploadName"],function(a,b){"use strict";return{fileUploader:a,uploadName:b}});